#include <cairo.h>


int
main (int argc, char *argv[])
{
  cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 900, 900);
  cairo_t *cr = cairo_create (surface);

  cairo_set_source_surface(cr, cairo_image_surface_create_from_png("gothic.png"), 0., 0.);
  cairo_paint(cr);
  cairo_push_group(cr);
  cairo_set_source_rgba(cr, 1, 1, 1, 0.5);
  cairo_paint(cr);
  cairo_set_font_size (cr, 128.);
  cairo_move_to (cr, 30., 700.);
  cairo_text_path(cr, "Hello Cairo!");
  cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR);
  cairo_fill(cr);
  cairo_pop_group_to_source(cr);
  cairo_paint(cr);

  cairo_surface_write_to_png (surface, "a.png");
  cairo_surface_destroy (surface);
  cairo_destroy (cr);
  return 0;
}